// pages/material/pages/distinguish/index.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
        record_id:0,
        //用户名
        client_name:'',
        //身份证号
        client_id_number:'',
        tipsText: '检测中...',
        showcamera: false,
        bgcolor: '#F2F2F2',
        colorArray: ['#F2F2F2', '#F56B79', '#74B2FF'],
    },
    //开始检测
    to_start: function () {
        this.setData({
            showcamera: true
        })
        wx.initFaceDetect()
        const context = wx.createCameraContext()
        const listener = context.onCameraFrame((frame) => {
            wx.faceDetect({
                frameBuffer: frame.data,
                width: frame.width,
                height: frame.height,
                enablePoint: true,
                enableConf: true,
                enableAngle: true,
                enableMultiFace: true,
                success: (faceData) => {
                    console.log(faceData)
                    let face = faceData.faceInfo[0]
                    if (faceData.x == -1 || faceData.y == -1) {
                        this.setData({
                            tipsText: '检测不到人脸'
                        })
                    }
                    if (faceData.faceInfo.length > 1) {
                        this.setData({
                            tipsText: '请保证只有一人做认证'
                        })
                    } else {
                        if (face.angleArray.pitch >= 0.1 || face.angleArray.roll >= 0.1 || face.angleArray.yaw >= 0.1) {
                            this.setData({
                                tipsText: '请平视摄像头'
                            })
                        } else if (face.confArray.global <= 0.8 || face.confArray.leftEye <= 0.8 || face.confArray.mouth <= 0.8 || face.confArray.nose <= 0.8 || face.confArray.rightEye <= 0.8) {
                            this.setData({
                                tipsText: '请勿遮挡五官'
                            })
                        } else {
                            this.setData({
                                tipsText: '人脸检测成功'
                            })
                            // 这里可以写自己的逻辑了
                            wx.stopFaceDetect();
                            wx.showToast({
                                title: '人脸检测成功',
                                icon: 'none',
                                mask: true,
                                duration: 2000
                            })
                            var pages = getCurrentPages();
                            var prevPage = pages[pages.length - 2]; //上一个页面
                            prevPage.setData({
                                face_detect: true
                            })
                            this.setData({
                                showcamera: false
                            })
                            setTimeout(() => { //上传成功后
                                wx.navigateBack();
                            }, 1500)
                        }
                    }
                },
                fail: (err) => {
                    console.log(err)
                    if (err.x == -1 || err.y == -1) {
                        this.setData({
                            tipsText: '检测不到人脸'
                        })
                    } else {
                        this.setData({
                            tipsText: '网络错误，请退出页面重试'
                        })
                    }
                }
            })
        })
        listener.start()
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        console.log(options.record_id)
        this.setData({
            record_id: options.record_id,
        })
        //获取订单的委托人
        let  params = {
            id:this.data.record_id
        }
        const that = this;
        getApp()._post_form('data/api.auth.order/getorderusermsg', params, (result) => {
            that.setData({
                client_name: result.data.client_name,
                client_id_number: result.data.client_id_number,
            })
        })
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    }
})